@奈良山
2年前 提问
1个回答

根据攻击目标将拒绝服务攻击分为哪些

趣能一姐
2年前

根据攻击目标将拒绝服务攻击分为以下这些:

  • 面向应用的攻击:在面向应用的攻击中,攻击者试图通过使应用非正常地耗尽有限的资源来阻止该应用执行其应该执行的正常任务。例如,在一个面向XML分析器的拒绝服务攻击中,攻击者向XML分析器传递一个构造良好且有效的小型XML文档,但它可以扩张为非常庞大的文件。当XML分析器试图分析该XML文档时,会消耗掉所有该分析器的可用内存,文档分析过程会因此而被终结。通常,应用开发人员或者运行管理人员会通过配置等手段限制应用对资源的过度使用,比如设置最大进程数量、设置一个应用可创建的最大并发连接数等,以此来限制由于面向应用的拒绝服务攻击而对整个操作系统造成的影响。然而,如果这样的限制不是基于主机的角色进行精心选择,一些重要的应用反而更容易成为拒绝服务攻击的目标。

  • 面向操作系统的攻击:面向操作系统的攻击和面向应用的攻击很相似,但在面向操作系统的拒绝服务攻击的情况下,问题可能更加严重。一个非常著名的例子是TCP的SYN Flooding攻击,在这个攻击中,攻击者向受害者发送巨量的TCP SYN请求分组,而当受害者基于三次握手协议再向攻击者发送响应分组时,攻击者则中止再响应,导致无法完成TCP握手过程,使连接处于“半开(Half-Open)”状态,巨量半开状态连接的存在会耗尽受害者主机的内存资源。这样的攻击将影响目标操作系统中依赖TCP进行通信的所有应用。

  • 面向路由器的攻击:许多面向端系统的拒绝服务攻击也可以针对IP路由器发起。此外,路由协议也被用于发起面向路由器的拒绝服务攻击,而且,和面向端系统的攻击不同,通过路由协议实施面向路由器的拒绝服务攻击的影响范围通常不止一台路由器设备,往往是包括多台路由器的一个网络。这类攻击需要攻击者有能力假冒特定的地址发送流量,使受害者相信收到的路由报文是正常有效的。最简单的面向路由器的攻击是用大量的路由表项来使路由器的路由表过载,从而耗尽路由器的内存或CPU处理能力。更严重的面向路由器的拒绝服务攻击是利用假冒的路由更新信息,引起整个网络地址段的路由黑洞,即所谓的路由欺骗或路由劫持。

  • 面向通信连接的拒绝服务攻击:和攻击端系统或者应用不同,面向通信连接的攻击试图破坏或中断一个正在进行中的通信连接。如果攻击者可以观察到一个TCP连接,比如知道其通信的发起方和/或接收方以及TCP端口号和序列号等,那么他就能比较轻易地通过发送假冒的报文来重置该连接或者使其失去同步,这样该连接的后续通信也就无法进行了。即使攻击者无法直接观察到这样的TCP连接,只要他能推断出有这样一个连接存在,那么他还是有可能通过发送大量的假冒TCP重置分组来重置该连接或者使其失去同步。

  • 面向链路的拒绝服务攻击:最简单的面向链路的拒绝服务攻击形式是发送大量本身不带拥塞控制机制的协议报文(比如UDP报文)直至造成相关链路极度拥塞,并造成合法流量的大量丢包。通过造成某条链路拥塞也可能在路由层面导致路由器与其邻居“失联”,因为过度拥塞不仅会影响数据层面的流量,同时也会导致控制层面的分组丢失,路由协议会认为相关的邻居发生故障,这将放大攻击造成的影响。简单网络管理协议(SNMP)的Trap报文就是有可能造成此类攻击的一种手段,因为Trap报文是基于UDP数据报传输的一种应用,本身不受拥塞控制。

  • 面向基础设施的拒绝服务攻击:许多网络应用系统需要依赖某些基础设施才能完成正常操作,这类基础设施可以大如全球性的域名服务DNS或全球性的公钥基础设施PKI,也可以小如局域以太网基础设施或者无线访问点AP。面向基础设施的拒绝服务攻击对用户造成的影响往往是巨大的,比如,如果域名服务器由于攻击而瘫痪,那么所有依赖于域名解析服务的应用都无法被访问。而且很显然,DNS服务器所在的层级越高,服务的范围越大,其遭受攻击后造成的影响也越大。

  • 面向防火墙和IDS的拒绝服务攻击:防火墙的作用是通过限制往来于受保护的系统(主机系统、数据中心或企业网络)的数据通信流量来防御被保护系统免遭外界的安全威胁,也可用于防御拒绝服务攻击。但另一方面,防火墙本身也很容易成为DDoS攻击的目标。通过耗尽防火墙的CPU处理资源,可以很容易地对防火墙进行攻击。对于有状态防火墙来说,还可以通过耗尽其状态表资源的方式进行攻击,攻击者可以发送大量不同源IP地址、目的IP地址、源端口和目的端口的流量,当这些流量流经防火墙的时候,将产生巨量的状态表项;还可以通过产生病态结构的状态等方式进行攻击。对于绝大多数防火墙来说,这将直接导致防火墙里的所有被保护系统无法提供服务,因为为了安全起见,绝大部分防火墙在遭遇自身失效的情况下的默认动作是断开连接。在后一种情况下,攻击者发送的攻击流量将导致防火墙的数据结构处于最差的工作状态。

防御拒绝服务攻击的方法有以下这些:

  • 分组过滤:为了避免被攻击,可以对特定的流量进行过滤(丢弃),例如,用防火墙过滤掉所有来自某些主机的报文,为了防止Smurf攻击而设置过滤器过滤掉所有ICMP协议的ECHO报文。这种基于特定攻击主机或者内容的过滤方法只限于已经定义的固定的过滤器,不适合动态变化的攻击模式。还有一种“输入诊断”方案,由受害者提供攻击特征,沿途的因特网服务提供商(Internet Service Provider,ISP)配合将攻击分组过滤掉,但是这种方案需要各个ISP的网络管理员人工配合,工作强度高、时间耗费大,因此较难实施,但效果明显。

  • 源端控制通:常参与DoS攻击的分组使用的源IP地址都是假冒的,因此如果能够防止IP地址假冒,就能够防止此类DoS攻击。通过某种形式的源端过滤可以减少或消除假冒IP地址的现象,从而防范DoS攻击。例如,路由器检查来自与其直接相连的网络分组的源IP地址,如果源IP地址非法(与该网络不匹配)则丢弃该分组。电信服务提供商利用自身的优势加强假冒地址的控制,可大大降低DDoS攻击的影响。现在越来越多的路由器支持源端过滤。但是,源端过滤并不能彻底消除IP地址假冒。例如,一个ISP的客户计算机仍然能够假冒成该ISP网络内成百上千台计算机中的一台。

  • 追溯:追溯发起攻击的源端的方法很多,这些方法假定存在源地址假冒,它试图在攻击的源处抑制攻击,并识别恶意的攻击源。它在IP地址假冒的情况下也可以工作,是日后采取必要的法律手段防止将来攻击的必要一步。但是追溯过程中并不能实时控制攻击的危害,当攻击很分散时也不能做到有效追溯。

  • 路由器动态检测和控制:这种方法的基本原理是在路由器上动态检测和控制DoS攻击引起的拥塞,其主要依据是DoS攻击分组虽然可能来源于多个流,但这些流肯定有某种共同特征,比如有共同的目的地址或源地址(或地址前缀),或者都是TCP SYN类型的报文。这些流肯定在某些路由器的某些输出链路上聚集起来并造成大量的分组丢失。这些有共同特征的流可以称为流聚集(aggregate)。其主要设想是流聚集所通过的路由器有可能通过分析分组丢失的历史辨识出这种流聚集。如果一个路由器辨识出了这些高带宽的流聚集,它就可以通知送来这些流聚集的上游路由器限制其发送速率。这种由发生拥塞的路由器发起的回推(pushback)信号可能一直递归地传播到源端。这种机制从直观上不难理解,如果能够实际使用,则对于解决DoS攻击问题有很好的效果。但是这种机制在实际的网络中能否实用面临着检测标准、公平性机制、高效实现及运营管理等很多未解决的问题。

  • 前端代理:我们可为静态资源准备多个站点做冗余备份,当Service Worker加载资源出错时,可不返回错误给上层页面,而是继续从备用站点加载,直到获得正确结果才返回。这样,只要有一个备用站点可用,资源就不会加载失败。

  • 离线访问:Service Worker 的设计初衷就是为了增强网页的离线化体验,因此一旦安装即可在后台长期运行,即使服务器关机、浏览器重启,它也不会失效。

  • 免费节点:使用冗余站点虽能提升稳定性,但攻击者仍可对备用站点发起攻击,尤其是恶意消耗流量费用的攻击,导致成本大幅上升。为此,我们还可使用一种更极端的方案使用免费 CDN 作为备用站点,例如 jsdelivr.net、unpkg.com、IPFS Gateway 等等,图片则可上传到各大网站的相册。

  • 接口防御:对于纯静态资源的站点,我们可将所有资源甚至包含 HTML 文件都通过免费 CDN 加速,从而大幅降低成本、增加稳定性。